DSP Process suplimental instructions...
=======================================

I am not an expert on DSP coding, and do not claim to be. However, I have
a (very) basic grasp of how to make the DSP comunicate with other programs.
If you know something that I dont, that is relevent to this (eg. something
I say is a load of rubbish) feel free to tell me ;)

The command DSP process requires that you have a .LOD file, which is the
DSP code for the filter. The only way to create a .LOD file is to program
in DSP assembler. This looks daunting at first (especially if your dont
normally code in assembler), but gets better (slowly)...

The DSP Process command uses the SSI port for data transfer to/from
the DSP. As this should be done on interupt, and the SSI port must be
initialised correctly upon start-up, I have included a basic shell of a
56001 assembler program. This initialises the port, and the interupt
routines which send / recieve data. These read the data to/from the memory
locations at in_l, in_r, out_l and out_r (for Left and Right sample values)

The example shell program implements a very crude mono function, by adding
the left and right samples together, and placing the result in both the
left and right output sample areas. This is done repeatedly, for ever (as
far as the program is concerned, anyway...) An obvious problem with this
example is that overflow is very likely to occur, but this doesn't really
matter, as it is only intended to demonstrate the technique...

There are also a number of other ways in which it could be improved 
- for example, the DATAIN interupt routine could be made to flag that
data has been read in, thus enabling code to store it etc. as apropriate...

It is possible to extend the readin/out routines so that all processing
is done there. However, you should be careful if you choose to do this -
interupt routines should be SHORT - as, what would happen if another piece
of data was recieved by the SSI before your interupt had finished? - another
interupt should be performed, but your already executing an interupt! - AFAIK,
this new data would be lost, and be unretrieveable....

I have included a short C program which does the same as DSP process to
make coding the DSP asm. easier. (Switching in and out of STOS would be a
real pain, when doing this...) you are free to use code from that in
anything you wish (there is not much there that cannot be derived from 
the Atari reference manuals - I worked it all out from Modern Atari
System Software...)

Also included in this directory are a couple of .LODs that were originaly
distributed with XBAR, a demo by Atari... These should be compatible with
DSP process...

Theoretically, it should be possible to convert a .LOD from any sound
processing program (eg. AFM) into the format. The only way to do this, however
is to use a dis-assembler to get the source code, and to modify it to
use the structure defined above. Of course, this is legally, and ethically
rather dodgy, so I'm not going to supply you with any .LODs from this
source... (otherwise known as hacking!)

I think thats about it....

Anthony Jacques

*--------------------------------------------------------------------*
email: jacquesa@cs.man.ac.uk   70 West Avenue, Bath, Somerset. BA2 3QD
WWW:   http://www.cs.man.ac.uk/~jacquesa/           IRC nick: AnthonyJ
*--------------------------------------------------------------------*
  KP Flash   GEM-DEU   GenFixer   FalcExtn   Tron2000   KP Coolibah
        see my WWW pages for info on any of these programs...
